﻿using ImplementationJeu;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using InterfaceJeu;
using System.Collections.Generic;
using System.Threading;

namespace TestImplementation
{

    /// <summary>
    ///Classe de test pour ObtenirCaseTest, destinée à contenir 
    ///le test à répéter pour le test de charge l'accès aux cases
    ///</summary>
    [TestClass()]
    public class ObtenirCaseTest
    {
        internal static int indexCourant;

        private TestContext testContextInstance;
        /// <summary>
        ///Obtient ou définit le contexte de test qui fournit
        ///des informations sur la série de tests active ainsi que ses fonctionnalités.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Attributs de tests supplémentaires
        [ClassInitialize()]
        public static void MyClassInitialize(TestContext testContext)
        {
            ImplementationJeu.Jeu monJeu = ImplementationJeu.Jeu.Instance;
            InterfaceJeu.Joueur j1 = new ImplementationJeu.Joueur("Nicolas", System.Drawing.Color.Red, "INFO");
            InterfaceJeu.Joueur j2 = new ImplementationJeu.Joueur("Aurelien", System.Drawing.Color.Azure, "EII");
            InterfaceJeu.Joueur j3 = new ImplementationJeu.Joueur("Jack", System.Drawing.Color.Yellow, "INFO");
            InterfaceJeu.Joueur j4 = new ImplementationJeu.Joueur("Albert", System.Drawing.Color.Tomato, "EII");
            List<InterfaceJeu.Joueur> lj = new List<InterfaceJeu.Joueur>();
            lj.Add(j1);
            lj.Add(j2);
            lj.Add(j3);
            lj.Add(j4);
            ImplementationJeu.Jeu.Instance.Joueurs = lj;
            monJeu.demarrerNouveuJeu(lj, 100);

            indexCourant = 0;

        }
        [ClassCleanup()]
        public static void MyClassCleanup()
        {

        }
        #endregion

        /// <summary>
        ///Test pour obtenirCase
        ///</summary>
        [TestMethod()]
        public void obtenirTouteCase()
        {
            if (indexCourant >= 10000)
            {
                Assert.IsTrue(true);                
            }
            else
            {
                InterfaceJeu.Coordonnees cc = new ImplementationJeu.Coordonnees(indexCourant);
                Case actual = ImplementationJeu.Jeu.Instance.Carte.fabriqueCase.obtenirCase(cc);
                indexCourant++;
            }
        }


       
    }
}
